perm filename OC.DIF[MF,ALS]1 blob
sn#765695 filedate 1984-08-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 1) OC3.WEB[MF,ALS] and 2) OC.WEB[MF,ALS] 8-19-84 10:54 pages 1,1
C00008 00003 1) OC3.WEB[MF,ALS] and 2) OC.WEB[MF,ALS] 8-19-84 10:54 pages 12,12
C00009 ENDMK
C⊗;
1) OC3.WEB[MF,ALS] and 2) OC.WEB[MF,ALS] 8-19-84 10:54 pages 1,1
**** File 1) OC3.WEB[MF,ALS]/10P/50L
1) @ The following routine writes out the |oc| raster, and updates
1) |oc_byte_no|.
1) @ @<Write the |oc| raster@>=
1) if glyph_ptr[char_code]≠0 then error('Duplicate glyph');
1) glyph_ptr[char_code]←wd_byte_no div 2;
1) print_nl; print('glyph ptr= ',glyph_ptr[char_code]:4);
**** File 2) OC.WEB[MF,ALS]/10P/50L
2) @ We define the earliest file position in the |oc| file to be
2) '3000 (in 16-bit words) rounded up to the nearest multiple of
2) 2*pagesizes (for WAITS' sake).
2) @!@↑system dependencies@>
2) @<Constants...@>=
2) @! char_seg_file_pos=1536;
2) @ The following routine writes out the intended
2) |oc| raster, initially on the |wd_file|, while
2) observing the file position restriction just noted in recording the
2) |glyph_ptr| value.
2) @ @<Write the |oc| raster@>=
2) if glyph_ptr[char_code]≠0 then error('Duplicate glyph');
2) glyph_ptr[char_code]←wd_byte_no div 2+char_seg_file_pos;
2) print_nl; print('glyph ptr= ',glyph_ptr[char_code]:4);
***************
**** File 1) OC3.WEB[MF,ALS]/12P/40L
1) follow in programs written in SAIL, it is difficult ad indeed virtually
1) impossible with the simplified form of \.{PASCAL} as used in this program.
**** File 2) OC.WEB[MF,ALS]/12P/40L
2) follow in programs written in SAIL, it is difficult and indeed virtually
2) impossible with the simplified form of \.{PASCAL} as used in this program.
***************
**** File 1) OC3.WEB[MF,ALS]/12P/45L
1) information into the \.{OD} file as it is being generated. WE then pad
1) this out to 3000 bytes, as required and only then copy the raster
**** File 2) OC.WEB[MF,ALS]/12P/45L
2) information into the \.{OC} file as it is being generated. We then pad
2) this out to 3000 bytes, as required and only then copy the raster
***************
**** File 1) OC3.WEB[MF,ALS]/12P/127L
1) @!bc,ec:integer;
1) @!oc_dir_ptr:integer;
**** File 2) OC.WEB[MF,ALS]/12P/127L
2) @!bc, @!ec, @!nc: integer;
2) @!oc_dir_ptr:integer;
***************
**** File 1) OC3.WEB[MF,ALS]/12P/138L
1) glyph_ptr[i]←0; {marks nonexistant character}
1) end;
**** File 2) OC.WEB[MF,ALS]/12P/138L
2) glyph_ptr[i]←-1; {marks nonexistant character}
2) end;
***************
**** File 1) OC3.WEB[MF,ALS]/12P/151L
1) @ We must also start up the |oc_file| and the |wd_file|. In the case
1) of the |wd_file| we will write 3000 zeros so that the |wd_byte_no|
1) assign to the individual glyph rasters will start at equivalent byte
1) numbers corresponding to the final byte numbers where this information will
1) appear after it has been transfered to the |oc_file|.
1) @ @<Start up the |oc_file|@>=
1) OC3.WEB[MF,ALS] and 2) OC.WEB[MF,ALS] 8-19-84 10:54 pages 12,12
**** File 2) OC.WEB[MF,ALS]/12P/151L
2) @ We must also start up the |oc_file| and the |wd_file|.
2) @ @<Start up the |oc_file|@>=
***************
**** File 1) OC3.WEB[MF,ALS]/12P/166L
1) while wd_byte_no<3000 do
1) begin
1) wd_byte(0); incr(wd_byte_no);
1) end;
1) debug
**** File 2) OC.WEB[MF,ALS]/12P/162L
2) debug
***************